<?php
/**
uc_client文件夹请放在跟本文件同级的目录下
define('UC_CONNECT', 'mysql');
define('UC_DBHOST', 'localhost');
define('UC_DBUSER', 'root');
define('UC_DBPW', 'root');
define('UC_DBNAME', 'discuz');
define('UC_DBCHARSET', 'utf8');
define('UC_DBTABLEPRE', '`discuz`.pre_ucenter_');
define('UC_DBCONNECT', '0');
define('UC_KEY', 'y3g3DeO8Y9Xdfau0G5R0i8D59eubP0A3M8F7D0L8qbs7j1wcmaKevaYeRcg1ebD6');
define('UC_API', 'http://localhost/discuz/uc_server');
define('UC_CHARSET', 'utf-8');
define('UC_IP', '');
define('UC_APPID', '1');
define('UC_PPP', '20');

 * @author yanpengquan
 *
 */
namespace Org\Util;

class UcServer
{

    private $config = array();

    private $error = NULL;
   
    function __construct ($config = NULL)
    {

        // 配置文件处理
        if (! $this->config($config)) {
            $this->error = "配置信息加载失败，请核对配置信息是否存在";
            return false;
        }
        
        // 准备载入uc_client
        if (! function_exists('uc_user_register')) {
            if (file_exists(dirname(__FILE__ ). '\\uc_client\\client.php'))
                include dirname(__FILE__ ). '\\uc_client\\client.php';
        }
        
        if (! function_exists('uc_user_register')) {
            $this->error = "配置信息加载失败，请核对配置信息是否存在";
            return false;
        }
    }

    private function config ($config = NULL)
    {
        // 开始检查配置信息是否存在
        // 已存在配置信息则返回，该配置信息通过Common下的function或其它方式完成配置
        if (defined('UC_API')) {
            return true;
        }
        // 尝试从传入参数中读取配置信息
        if (is_array($config) && isset($config['UC_API'])) {
            // 从传入参数中获取uc配置信息
            $this->config = array_merge($this->config, $config);
        } else
            if (C('UC.UC_API')) {
                // 从配置TP配置文件中加载配置信息
                $this->config = array_merge($this->config, C('UC'));
            } else {
                return false;
            }
        // 定义配置文件
        foreach ($this->config as $k => $v) {
            define($k, $v);
        }
        return defined('UC_API') ? true : false;
    }

    /**
     * 得到错误提示信息
     *
     * @return string
     */
    function getError ()
    {
        return $this->error;
    }

    /**
     *
     *
     *
     *
     * 用户注册
     * 本接口函数用于新用户的注册。用户名、密码、Email 为一个用户在 UCenter 的基本数据，提交后 UCenter
     * 会按照注册设置和词语过滤的规则检测用户名和 Email 的格式是否正确合法，如果正确则返回注册后的用户 ID，否则返回相应的错误信息。
     *
     * @param string $username
     *            用户名
     * @param string $password
     *            密码
     * @param string $email
     *            电子邮件
     * @param integer $questionid
     *            安全提问索引
     * @param string $answer
     *            安全提问答案
     * @return mixed 大于 0:返回用户 ID，表示用户注册成功
     *         -1:用户名不合法
     *         -2:包含不允许注册的词语
     *         -3:用户名已经存在
     *         -4:Email 格式有误
     *         -5:Email 不允许注册
     *         -6:该 Email 已经被注册
     */
    function uc_user_register ($username, $password, $email, $questionid = '',
            $answer = '')
    {
        return uc_user_register($username, $password, $email, $questionid = '',
                $answer = '');
    }
}